home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / archiver / thunder2.lzh / THUNDER2.S < prev   
Text File  |  1985-11-20  |  2KB  |  106 lines

  1. ;  **    JPM 1989
  2. ;
  3. ;  **    The UNPACK routines
  4. ;
  5. ;  **    All registers preserved.
  6.  
  7. unpack    movem.l    d0-d7/a0-a6,-(sp)
  8.     movea.l    a2,a0
  9.     add.l    8(a0),a0
  10.     add.l    #12,a2            Skip packed header info.
  11.     sub.l    -(a0),a0
  12.     movea.l    a0,a3            Finish address.
  13.     moveq    #0,d7
  14.     bset    #15,d7
  15.     move.l    #$ff8240,a6
  16.     move.w    (a6),d5            Save color
  17.  
  18. m1    moveq    #0,d1
  19.     bsr.s    u3
  20.     bcc.s    u7
  21.     bsr.s    u3
  22.     bcs.s    r23
  23.     bra.s    u9
  24. u7    move.b    (a0)+,(a4)+
  25. u30    move.w    d7,(a6)
  26.     cmpa.l    a3,a2
  27.     ble.s    m1
  28.     move.w    d5,(a6)            restore color
  29.     movem.l    (sp)+,d0-d7/a0-a6
  30.     rts
  31. u8    move.b    d1,(a4)+
  32.     bra.s    u30
  33. u9    moveq.w    #2,d2
  34. u1    bsr.s    u3
  35.     roxl.b    #1,d1
  36.     dbf    d2,u1
  37.     cmpi.w    #1,d1
  38.     beq.s    u21
  39.     ble.s    u8
  40.     bsr.s    u14
  41. u20    move.w    d2,d0
  42.     bsr.s    u4
  43. u18    movea.l    a4,a1    
  44.     sub.l    d2,a1
  45. mlp    move.b    (a1)+,(a4)+
  46.     dbf    d0,mlp
  47.     bra.s    u30
  48. u21    move.w    #9,d0
  49. u22    move.b    (a0)+,(a4)+
  50.     dbf    d0,u22
  51.     bra.s    u30
  52. u3    lsl.w    #1,d7
  53.     bne.s    u10
  54.     move.w    (a2)+,d7
  55.     lsl.w    #1,d7
  56.     bset    #0,d7
  57. u10    rts
  58. r23    bsr.s    u3
  59.     bcc.s    u19
  60.     moveq    #1,d0
  61.     moveq    #0,d2
  62.     move.b    (a0)+,d2
  63.     bra.s    u18
  64. u19    moveq.w    #3,d2
  65. u11    bsr.s    u3
  66.     roxl.b    d1
  67.     dbf    d2,u11
  68.     cmpi.w    #1,d1
  69.     beq.s    u17
  70.     blt.s    u12
  71.     bsr.s    u14
  72.     moveq    #2,d0
  73.     bra.s    u18
  74. u17    move.b    (a0,d2.w),(a4)+
  75.     bra    u30
  76. u16    bsr.s    u4
  77.     bra.s    u20
  78. u12    bsr.s    u4
  79.     move.w    d2,d0
  80.     beq.s    u16
  81.     bsr.s    u3
  82.     bcc.s    u2
  83.     moveq    #0,d2
  84.     bra.s    u15
  85. u2    move.b    (a0)+,d2
  86. u15    move.b    d2,(a4)+
  87.     dbf    d0,u15
  88.     bra    u30
  89. u4    moveq    #3,d2
  90. u5    bsr.s    u3
  91.     roxl.b    d1
  92.     dbf    d2,u5
  93. u14    moveq    #0,d2
  94.     move.b    d1,d1
  95.     beq.s    u6
  96.     subq.w    #1,d1
  97. u13    lsl.w    #1,d7
  98.     bne.s    u77
  99.     move.w    (a2)+,d7
  100.     lsl.w    #1,d7
  101.     bset    #0,d7
  102. u77    roxl.w    d2
  103.     dbf    d1,u13
  104.     moveq    #0,d1
  105. u6    rts
  106.